Hugging Face Transformers এবং DeepSpeed ইন্টিগ্রেশন প্রজেক্ট
Hugging Face-এর Transformers লাইব্রেরি এবং DeepSpeed ফ্রেমওয়ার্কের সংমিশ্রণ একটি শক্তিশালী পরিবেশ তৈরি করে যা বড় ভাষা মডেল Training এবং ইনফারেন্সকে দ্রুত এবং কার্যকর করে। এই গাইডে আমরা একটি সম্পূর্ণ প্রজেক্ট তৈরি করব যেখানে আমরা Hugging Face Transformers লাইব্রেরি ব্যবহার করে একটি BERT মডেলকে DeepSpeed ব্যবহার করে Training করবো।
প্রয়োজনীয়তা
- Python 3.x
- PyTorch
- Hugging Face Transformers
- DeepSpeed
- datasets
১. লাইব্রেরি ইন্সটল করা
প্রথমে প্রয়োজনীয় লাইব্রেরিগুলি ইন্সটল করতে হবে:
pip install torch transformers datasets deepspeed
২. ডেটাসেট লোড করা
আমরা Hugging Face-এর datasets লাইব্রেরি ব্যবহার করে একটি ডেটাসেট লোড করবো। এখানে আমরা glue ডেটাসেটের sst2 সাবসেট ব্যবহার করব।
from datasets import load_dataset
# GLUE ডেটাসেট লোড করা (SST-2 সাব-সেট)
dataset = load_dataset("glue", "sst2")
৩. মডেল এবং টোকেনাইজার প্রস্তুত করা
আমরা BERT মডেল এবং তার টোকেনাইজার ব্যবহার করবো।
from transformers import BertTokenizer, BertForSequenceClassification
# BERT টোকেনাইজার এবং মডেল লোড করা
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
model = BertForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
৪. ডেটা প্রসেসিং
ডেটাসেটের টেক্সট ডেটা টোকেনাইজ করতে হবে।
def tokenize_function(examples):
return tokenizer(examples['sentence'], truncation=True)
# ডেটাসেট টোকেনাইজ করা
tokenized_datasets = dataset.map(tokenize_function, batched=True)
৫. DeepSpeed কনফিগারেশন তৈরি করা
ds_config.json নামে একটি ফাইল তৈরি করুন:
{
"train_batch_size": 32,
"gradient_accumulation_steps": 1,
"fp16": {
"enabled": true
},
"zero_optimization": {
"stage": 2
},
"steps_per_print": 100
}
৬. TrainingArguments সেটআপ করা
from transformers import TrainingArguments
# TrainingArguments সেটআপ করা
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
per_device_train_batch_size=8,
per_device_eval_batch_size=8,
num_train_epochs=3,
weight_decay=0.01,
logging_dir='./logs',
deepspeed="ds_config.json" # DeepSpeed কনফিগারেশন ফাইল
)
৭. Trainer তৈরি করা
Hugging Face-এর Trainer ব্যবহার করে Training প্রক্রিয়া শুরু করা হবে।
from transformers import Trainer
# Trainer তৈরি করা
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["validation"],
)
# Training শুরু করা
trainer.train()
৮. ফলাফল মূল্যায়ন
Training সম্পন্ন হলে মডেলটির কার্যকারিতা মূল্যায়ন করা যাবে।
# মূল্যায়ন করা
eval_results = trainer.evaluate()
print(eval_results)
সারসংক্ষেপ
এই প্রজেক্টে আমরা DeepSpeed ব্যবহার করে একটি Large Scale Model Training প্রক্রিয়া তৈরি করেছি যেখানে আমরা BERT মডেলকে glue ডেটাসেটের sst2 সাব-সেটের উপর প্রশিক্ষণ দিয়েছি।
কন্টেন্ট:
- লাইব্রেরি ইনস্টলেশন: প্রয়োজনীয় লাইব্রেরিগুলি ইনস্টল করা হয়েছে।
- ডেটাসেট লোডিং: GLUE ডেটাসেট লোড করা হয়েছে।
- মডেল এবং টোকেনাইজার প্রস্তুতি: BERT মডেল এবং টোকেনাইজার লোড করা হয়েছে।
- ডেটা প্রসেসিং: ডেটা টোকেনাইজ করা হয়েছে।
- TrainingArguments এবং Trainer: TrainingArguments সেটআপ করা হয়েছে এবং Trainer তৈরি করা হয়েছে।
- Training এবং Evaluation: মডেলটি প্রশিক্ষণ করা হয়েছে এবং পরে মূল্যায়ন করা হয়েছে।
DeepSpeed এর মাধ্যমে মডেল Training স্পিড এবং মেমোরি ব্যবস্থাপনায় কার্যকরীভাবে উন্নতি করে, যা বড় মডেল এবং ডেটাসেটের সাথে কাজ করার জন্য বিশেষভাবে উপযোগী।
Read more